Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Rendered • View rawDownload


README.md d45b82acc3a64e0fcfee02318b992937d03cc620 (d45b82ac) Text, 6.75 KB

Reticulum MeshChatX

A heavily customized and updated fork of Reticulum MeshChat.

This project is seperate from the original Reticulum MeshChat project, and is not affiliated with the original project. It has been completely reworked, but I try to maintain a migrator to auto-migrate from old database to new one.

Major Features

• Full LXST support w/ custom voicemail support (espeak-ng and ffmpeg required).
• Map (w/ MBTiles support for offline)
• Security improvements
• Custom UI/UX
• More Tools
• Built-in page archiving and automatic crawler (no multi-page support yet).
• Block LXMF users and NomadNet Nodes
• Toast system for notifications
• i18n support (En, De, Ru)
• Raw SQLite database backend (replaced Peewee ORM)

TODO

• [ ] Tests and proper CI/CD pipeline.
• [ ] RNS hot reload fix
• [ ] Backup/Import identities, messages and interfaces.
• [ ] Offline Reticulum documentation tool
• [ ] LXMF Telemtry for map
• [ ] Spam filter (based on keywords)
• [ ] Multi-identity support.
• [ ] TAK tool/integration
• [ ] RNS Tunnel - tunnel your regular services over RNS to another MeshchatX user.
• [ ] RNS Filesync - P2P file sync

Usage

Check releases for pre-built binaries or appimages.

Building

This project uses Task for build automation. Install Task first, then:

T282828
task install T8b949e# installs Python deps via Poetry and Node deps via pnpm
task build


You can run T383838task run or T383838task develop (a thin alias) to start the backend + frontend loop locally through T383838poetry run meshchat.

Available Tasks

┌────────────────────────────┬─────────────────────────────────────────────────────────────────────┐
│ Task │ Description │
├────────────────────────────┼─────────────────────────────────────────────────────────────────────┤
│ T383838task install │ Install all dependencies (syncs version, installs node modules and… │
│ T383838task node_modules │ Install Node.js dependencies only │
│ T383838task python │ Install Python dependencies using Poetry only │
│ T383838task sync-version │ Sync version numbers across project files │
│ T383838task run │ Run the application │
│ T383838task develop │ Run the application in development mode (alias for T383838run) │
│ T383838task build │ Build the application (frontend and backend) │
│ T383838task build-frontend │ Build only the frontend │
│ T383838task clean │ Clean build artifacts and dependencies │
│ T383838task wheel │ Build Python wheel package (outputs to T383838python-dist/) │
│ T383838task build-appimage │ Build Linux AppImage │
│ T383838task build-exe │ Build Windows portable executable │
│ T383838task dist │ Build distribution (defaults to AppImage) │
│ T383838task electron-legacy │ Install legacy Electron version │
│ T383838task build-appimage-legacy │ Build Linux AppImage with legacy Electron version │
│ T383838task build-exe-legacy │ Build Windows portable executable with legacy Electron version │
│ T383838task build-docker │ Build Docker image using buildx │
│ T383838task run-docker │ Run Docker container using docker-compose │
└────────────────────────────┴─────────────────────────────────────────────────────────────────────┘

All tasks support environment variable overrides. For example:

• T383838PYTHON=python3.12 task install
• T383838DOCKER_PLATFORMS=linux/amd64,linux/arm64 task build-docker

Python Packaging

The backend uses Poetry with T383838pyproject.toml for dependency management and packaging. Before building, run T383838python3 scripts/sync_version.py (or T383838task sync-version) to ensure the generated T383838src/version.py reflects the version from T383838package.json that the Electron artifacts use. This keeps the CLI release metadata, wheel packages, and other bundles aligned.

Build Artifact Locations

Both T383838poetry build and T383838python -m build generate wheels inside the default T383838dist/ directory. The T383838task wheel shortcut wraps T383838poetry build -f wheel and then runs T383838python scripts/move_wheels.py to relocate the generated T383838.whl files into T383838python-dist/ (the layout expected by T383838scripts/test_wheel.sh and the release automation). Use T383838task wheel if you need the artifacts in T383838python-dist/; T383838poetry build or T383838python -m build alone will leave them in T383838dist/.

Building with Poetry

T282828
T8b949e# Install dependencies
poetry install

T8b949e# Build the package (wheels land in dist/)
poetry build

T8b949e# Install locally for testing (consumes dist/)
pip install dist/*.whl


Building with pip (alternative)

If you prefer pip, you can build/install directly:

T282828
T8b949e# Build the wheel
pip install build
python -m build

T8b949e# Install locally
pip install .


Building in Docker

T282828
task build-docker

T383838build-docker creates T383838reticulum-meshchatx:local (or T383838$DOCKER_IMAGE if you override it) via T383838docker buildx. Set T383838DOCKER_PLATFORMS to T383838linux/amd64,linux/arm64 when you need multi-arch images, and adjust T383838DOCKER_BUILD_FLAGS/T383838DOCKER_BUILD_ARGS to control T383838--load/T383838--push.

Running with Docker Compose

T282828
task run-docker

T383838run-docker feeds the locally-built image into T383838docker compose -f docker-compose.yml up --remove-orphans --pull never reticulum-meshchatx. The compose file uses the T383838MESHCHAT_IMAGE env var so you can override the target image without editing the YAML (the default still points at T383838ghcr.io/sudo-ivan/reticulum-meshchatx:latest). Use T383838docker compose down or T383838Ctrl+C to stop the container.

The Electron build artifacts will still live under T383838dist/ for releases.

Standalone Executables (cx_Freeze)

The T383838cx_setup.py script uses cx_Freeze for creating standalone executables (AppImage for Linux, NSIS for Windows). This is separate from the Poetry/pip packaging workflow.

Internationalization (i18n)

Multi-language support is in progress. We use T383838vue-i18n for the frontend.

Translation files are located in T383838meshchatx/src/frontend/locales/.

Currently supported languages:

• English (Primary)
• Russian
• German


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────